#include <stdio.h>

// 交换了内存地址对应空间的内容
// 所以原函数中的变量值改变
void swap1(int *a, int *b) {
    int tmp = *a;
    *a = *b;
    *b = tmp;
}

// 这里没有改变
void swap2(int *a, int *b) {
    int *tmp = a;
    a = b;
    b = tmp;
}

int main(int argc, char *argv[])
{
    int a = 5;
    int b = 10;

    printf("------before------\n");
    printf("a = %d b = %d\n", a, b);
    printf("a:%p b:%p\n", &a, &b);
    swap2(&a, &b);

    printf("------after------\n");
    printf("a = %d b = %d\n", a, b);
    printf("a:%p b:%p\n", &a, &b);

    return 0;
}

